home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / connx-1.0 / connect.h < prev    next >
C/C++ Source or Header  |  1995-06-25  |  3KB  |  140 lines

  1. /*
  2.  * message types and structures for connx game
  3.  */
  4.  
  5. #ifndef CONN_H
  6. #define CONN_H
  7.  
  8. #include "commun.h"
  9.  
  10. /* maximum player name size */
  11. #define NAME_SIZE 10
  12.  
  13. /* maximum number of players */
  14. #define MAX_PLAYERS MAX_CONN
  15.  
  16. /* maximum number of rows */
  17. #define MAX_ROW 50
  18.  
  19. /* maximum number of columns */
  20. #define MAX_COL 50
  21.  
  22. /* maximum number of pieced to connect to win */
  23. #define MAX_CONNECT 50
  24.  
  25. /* defaults number of rows */
  26. #define DEF_ROW 10
  27.  
  28. /* default number of columns */
  29. #define DEF_COL 10
  30.  
  31. /* default number of pieces to connect to win */
  32. #define DEF_CONNECT 4
  33.  
  34. /* game types */
  35. /* gravity - pieces fall to bottom */
  36. /* nogravity - pieces go in whatever coord you pick */
  37. #define GRAVITY 0
  38. #define NOGRAVITY 1
  39.  
  40. /* default game type */
  41. #define DEF_GAME GRAVITY
  42.  
  43. /*default timeout = no timeout */
  44. #define DEF_TIMEOUT 0
  45.  
  46. typedef struct coord
  47. {
  48.   int row;
  49.   int column;
  50. }
  51.  
  52. coord;
  53.  
  54. typedef int board[MAX_ROW][MAX_COL];
  55.  
  56. /*****************************************************************************/
  57.  
  58. /* message types */
  59. enum
  60.   {
  61.     NEW_PLAYER, OTHERS_MOVE, YOUR_MOVE, GAME_START,
  62.     GAME_END, REQUEST, RESPONSE, MY_MOVE, WHOSE_MOVE, CANCEL_MOVE
  63.   };
  64.  
  65. /* Note: YOUR_MOVE has no message data associated with it.
  66.          It is sent to client whose turn it is. */
  67.  
  68. /* maximum message size */
  69. #define MAX_DATA sizeof(game_start)
  70.  
  71. /****MESSAGES*****************************************************************/
  72.  
  73. /* new player sends this message to server*/
  74. typedef struct new_player_message
  75. {
  76.   char name[NAME_SIZE];
  77. }
  78.  
  79. new_player;
  80.  
  81. /* server sends this message to say whose move it is */
  82. typedef struct whose_move_message
  83. {
  84.   int player;
  85. }
  86.  
  87. whose_move;
  88.  
  89. /* client sends this message to server to indicate move.
  90.  * The message is returned by server with rc indicating if
  91.  * move is successful or not */
  92. #define FORFEIT -1
  93. typedef struct my_move_message
  94. {
  95.   int rc;
  96.   coord move;
  97. }
  98.  
  99. my_move;
  100.  
  101. /* server sends this message to clients to indicates
  102.    other players' moves */
  103. typedef struct others_move_message
  104. {
  105.   int player_number;
  106.   coord move;
  107. }
  108.  
  109. others_move;
  110.  
  111. /* message sent by server at beginning of game */
  112. typedef struct game_start_message
  113. {
  114.   int game_type;
  115.   int num_players;
  116.   int num_rows;
  117.   int num_columns;
  118.   int num_connect;
  119.   int your_number;
  120.   int timeout;
  121.   char players[MAX_PLAYERS][NAME_SIZE];
  122.   int team_numbers[MAX_PLAYERS];
  123. }
  124.  
  125. game_start;
  126.  
  127. #define TIE_GAME -1
  128. #define CANCEL_GAME -2
  129. /* message sent by server at end of game */
  130. typedef struct game_end_message
  131. {
  132.   int winner;
  133.   coord connect[2];
  134. }
  135.  
  136. game_end;
  137.  
  138.  
  139. #endif
  140.